# Description: 方便在当前目录下编译示例程序
CXX := g++
CC := gcc

DEBUG_FLAGS := -g -ggdb 
COMMON_FLAGS := -O0 -Wall

CXXFLAGS := -std=c++17
CXXFLAGS += $(COMMON_FLAGS) $(DEBUG_FLAGS)

CURRENT_DIR := $(abspath .)
CXXFLAGS += -DCURRENT_DIR_NAME=\"$(CURRENT_DIR)\"

LDFLAGS := -lOpenCL -DCL_TARGET_OPENCL_VERSION=300
# BOOST_LOG_DYN_LINK 用于指示该库使用动态链接，否则推断为静态链接，导致在使用动态库链接时因找不到定义导致编译失败
LDFLAGS += -DBOOST_LOG_DYN_LINK -lboost_log -lboost_log_setup -lboost_thread \
	-lboost_random \
	-lboost_timer \
	-lboost_filesystem \
	-lboost_chrono 

sources := $(shell ls -t *.cpp | head -n 1)
default := $(basename $(sources))

all: $(default)
# 指定编译规则
% : %.cpp
	$(CXX) $(CXXFLAGS) -o $@ $< $(LDFLAGS)

.PHONY: clean
clean:
	rm -f $(default)